package com.example.micro_property_springboot.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.micro_property_springboot.entity.BackupStatistics;
import com.example.micro_property_springboot.entity.SysBackupRecord;

import java.io.IOException;
import java.util.List;

/**
 * 系统备份记录服务接口
 * 提供数据库备份相关的业务逻辑方法
 */
public interface SysBackupRecordService extends IService<SysBackupRecord> {
    
    /**
     * 执行手动数据库备份
     */
    SysBackupRecord doManualBackup(Long operatorId, String remark) throws IOException;
    
    /**
     * 执行自动数据库备份
     */
    SysBackupRecord doAutoBackup() throws IOException;
    
    /**
     * 恢复数据库备份
     */
    boolean restoreFromBackup(Long backupId) throws IOException;
    
    /**
     * 获取最近的N条备份记录
     */
    List<SysBackupRecord> getRecentBackupRecords(Integer limit);
    
    /**
     * 清理过期备份文件
     */
    void cleanExpiredBackups(Integer keepDays);
    
    /**
     * 删除备份记录及文件
     */
    boolean deleteBackup(Long backupId);
    
    /**
     * 获取备份统计信息
     */
    BackupStatistics getBackupStatistics();
    
}